package form

import (
	"gitee.com/micro-plat/codeless/apiserver/meta/biz/form"
	"github.com/micro-plat/hydra"
)

// SearchHandle 查询表单数据
func SearchHandle(ctx hydra.IContext) (r interface{}) {
	ctx.Log().Info("------------------------表单数据查询------------------------")
	if err := ctx.Request().Check("table_id", "param"); err != nil {
		return err
	}
	tenantID := ctx.Request().GetInt("tenant_id")
	tableId := ctx.Request().GetInt("table_id")
	param := ctx.Request().GetXMap("param")

	data, count, err := form.QueryTableData(tenantID, tableId, param, ctx.Request().GetInt("pi", 1), ctx.Request().GetInt("ps", 10))
	if err != nil {
		return err
	}
	return map[string]interface{}{
		"data":  data,
		"count": count,
	}
}

// SearchHandle 查询表单数据
func NamesHandle(ctx hydra.IContext) (r interface{}) {
	if err := ctx.Request().Check("table_id"); err != nil {
		return err
	}
	tenantID := ctx.Request().GetInt("tenant_id")
	tableId := ctx.Request().GetInt("table_id")
	data, err := form.QueryNameData(tenantID, tableId, ctx.Request().GetInt("pi", 1), ctx.Request().GetInt("ps", 10))
	if err != nil {
		return err
	}
	return data
}

// InsertHandle 插入表单数据
func InsertHandle(ctx hydra.IContext) (r interface{}) {
	if err := ctx.Request().Check("table_id", "param"); err != nil {
		return err
	}
	tenantID := ctx.Request().GetInt("tenant_id")
	tableId := ctx.Request().GetInt("table_id")
	param := ctx.Request().GetXMap("param")
	data, err := form.InsertTableData(tenantID, tableId, param)
	if err != nil {
		return err
	}
	return data
}

// UpdateHandle 更新表单数据
func UpdateHandle(ctx hydra.IContext) (r interface{}) {
	if err := ctx.Request().Check("table_id", "param"); err != nil {
		return err
	}
	tenantID := ctx.Request().GetInt("tenant_id")
	tableId := ctx.Request().GetInt("table_id")
	param := ctx.Request().GetXMap("param")
	data, err := form.UpdateTableData(tenantID, tableId, param)
	if err != nil {
		return err
	}
	return data
}
